Databases are used in a variety of contexts and often contain large quantities of valuable information. For example, databases may be used in commercial applications, such as electronic commerce, to process customer orders for merchandise, to maintain customer financial information and so forth. Periodically, information contained within a database may be backed up to a non-volatile storage medium to preserve the information in the event the database goes offline in an uncontrolled manner, such as due to a power failure or system error. Typically, it is important to bring such a database online as quickly as possible so as to reduce errors and, potentially, lost business and revenue. For example, an operator of a database that is used in electronic commerce will want the database to come back online quickly so the database can continue to manage orders and thereby generate revenue for the operator.
Conventionally, restoration of a database is accomplished by backing up all of the database's filegroups to some form of non-volatile storage. After a fault occurs and the database goes offline, the database can be brought back online by restoring all of the filegroups from storage as well as any database metadata that is used to access the information contained in each filegroup. Because all filegroups within such a database must be restored before any access to the database is permitted, there may be a long delay before the database is brought back online. In the case of very large databases and/or databases that have a large number of filegroups, the delay may be particularly pronounced. Conventionally, the requirement that all database filegroups be restored prior to bringing a database back online cannot be waived even in situations where the database's most critical information is stored only in a few, or even one, filegroup. Thus, a conventional method for restoring a database may delay bringing a database back online while such a method restores relatively unimportant filegroups. Furthermore, the requirement that all filegroups be restored prior to bringing a database online necessitates that each filegroup be backed up in its entirety to enable each such filegroup to be restored.
Accordingly, there is a need for a mechanism that enables a database to return to an online status without having fully restored all of its filegroups. The present invention satisfies this need.